package data.hullmods;

import com.fs.starfarer.api.combat.BaseHullMod;
import com.fs.starfarer.api.combat.MutableShipStatsAPI;
import com.fs.starfarer.api.combat.ShipAPI;
import com.fs.starfarer.api.combat.ShipAPI.HullSize;
import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.combat.*;
import com.fs.starfarer.api.ui.Alignment;
import com.fs.starfarer.api.ui.TooltipMakerAPI;
import com.fs.starfarer.api.util.Misc;
import com.fs.starfarer.api.impl.campaign.ids.Stats;
import com.fs.starfarer.api.combat.DamageType;
import com.fs.starfarer.api.ui.LabelAPI;
import com.fs.starfarer.api.util.IntervalUtil;


public class Diamond_flow extends BaseHullMod{

	@Override
    public void advanceInCombat(ShipAPI ship, float amount, float MAX_TIME_MULT, String id, MutableShipStatsAPI stats) {
        if (!ship.isAlive()) {
        return;
        }
        float FcurrentHP = ship.getHitpoints();
        float FmaxHP = ship.getMaxHitpoints();
        if (FcurrentHP < FmaxHP * 0.5f) {
        shipTimeMult = 1f + 0.05f;
        	if (FcurrentHP < FmaxHP * 0.4f) {
        		shipTimeMult = 1f + 0.1f;
       			if (FcurrentHP < FmaxHP * 0.25f){
     				shipTimeMult = 1f + 0.2f;
      				if (FcurrentHP < FmaxHP * 0.1f)
        				shipTimeMult = 1f + MAX_TIME_MULT;
        			}
        		}
        	}else shipTimeMult = 1f;
        	stats.getTimeMult().modifyMult(id, shipTimeMult + 0.01f);
       		stats.getFluxDissipation().modifyMult(id, shipTimeMult);
       		stats.getFluxCapacity().modifyMult(id, shipTimeMult);
       		stats.getMaxSpeed().modifyMult(id, shipTimeMult * 0.95f);
       		stats.getAcceleration().modifyMult(id, shipTimeMult);
       		stats.getDeceleration().modifyMult(id, shipTimeMult);
       		stats.getTurnAcceleration().modifyMult(id, shipTimeMult);
       		stats.getMaxTurnRate().modifyMult(id, shipTimeMult);
	}
}